Multiplication
其實在這個指令裡面並沒有給Destination Register
t1跟t2它們其實都是32個bits的資料量
它的Product有可能會高達到64個bits
我們沒有辦法用任何我們之前所學過在MIPS
general purpose的32個暫存器裡面去儲存高達64個bits的資料
因此 我們需要一個special的register去處理它
Hi / Lo
進行乘法運算的時候
把兩個暫存器的值取出來進行乘法
得到64個位元的結果
比較高位元的32個bits我們就會放到Hi裡面
而相對來說比較低位元的資料就放到Lo裡面
mfhi:move from Hi
從Hi裡面把資料搬出來 搬到t3這個暫存器裡面
mflo:move from Lo這個指令
把Lo這個暫存器裡面的資料搬出來 放到t4這個暫存器裡面
因此 如果我們需要進行兩個32bits的資料的乘法時
我們就一定會用到Hi以及Lo這兩個暫存器
MIPS有提供mul指令(其中有rd) 若確定product不會超過32bit就可以用 用這個就會自動把Lo放到rd